using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using SRB;

namespace ValidacionForms
{
    class SimpleReglaNumerica : Rule
    {
        int _valorComparar;
        OperacionReglaNumerica _operacion;

        public SimpleReglaNumerica(int ordenValidacion, string description, bool continuarValidando, OperacionReglaNumerica operacion, int valorComparar)
            : base(ordenValidacion, description, continuarValidando, ReglaValidacion.Formato)
        {
            _valorComparar = valorComparar;
            _operacion = operacion;
        }
        public override bool ValidateRule(string validar)
        {
            #region Intento Validar
            int _enteroCampo;
            if (!int.TryParse(validar, out _enteroCampo)) return false;
            #endregion

            #region Operaciones
            if (_operacion == OperacionReglaNumerica.igual)
            {
                if (_enteroCampo == _valorComparar) return true;
                else return false;
            }
            if (_operacion == OperacionReglaNumerica.mayor)
            {
                if (_enteroCampo > _valorComparar) return true;
                else return false;
            }
            if (_operacion == OperacionReglaNumerica.mayorIgual)
            {
                if (_enteroCampo >= _valorComparar) return true;
                else return false;
            }
            if (_operacion == OperacionReglaNumerica.menor)
            {
                if (_enteroCampo < _valorComparar) return true;
                else return false;
            }
            if (_operacion == OperacionReglaNumerica.menorIgual)
            {
                if (_enteroCampo <= _valorComparar) return true;
                else return false;
            }
            #endregion
            return false; // por defecto  (en todo el bloque Operaciones mejor un Switch por el bloque default)
        }
    }
}
